<?xml version="1.0" encoding="UTF-8" ?>
<class name="GDFunctionState" inherits="Reference" category="Core" version="3.0.alpha.custom_build">
	<brief_description>
		State of a function call after yielding.
	</brief_description>
	<description>
		Calling [method @GDScript.yield] within a function will cause that function to yield and return its current state as an object of this type. The yielded function call can then be resumed later by calling [method resume] on this state object.
	</description>
	<tutorials>
	</tutorials>
	<demos>
	</demos>
	<methods>
		<method name="is_valid" qualifiers="const">
			<return type="bool">
			</return>
			<argument index="0" name="extended_check" type="bool" default="false">
			</argument>
			<description>
				Check whether the function call may be resumed. This is not the case if the function state was already resumed.
				If [code]extended_check[/code] is enabled, it also checks if the associated script and object still exist. The extended check is done in debug mode as part of [method GDFunctionState.resume], but you can use this if you know you may be trying to resume without knowing for sure the object and/or script have survived up to that point.
			</description>
		</method>
		<method name="resume">
			<return type="Variant">
			</return>
			<argument index="0" name="arg" type="Variant" default="null">
			</argument>
			<description>
				Resume execution of the yielded function call.
				If handed an argument, return the argument from the [method @GDScript.yield] call in the yielded function call. You can pass e.g. an [Array] to hand multiple arguments.
				This function returns what the resumed function call returns, possibly another function state if yielded again.
			</description>
		</method>
	</methods>
	<signals>
		<signal name="completed">
			<argument index="0" name="result" type="Nil">
			</argument>
			<description>
			</description>
		</signal>
	</signals>
	<constants>
	</constants>
</class>
